package model

// Response 通用响应结构
type Response struct {
	Code    int         `json:"code"`              // 状态码
	Message string      `json:"message"`           // 提示信息
	Data    interface{} `json:"data,omitempty"`    // 响应数据
	Error   string      `json:"error,omitempty"`   // 错误信息
}

// LoginRequest 登录请求
type LoginRequest struct {
	Username string `json:"username" binding:"required" example:"admin"`     // 用户名
	Password string `json:"password" binding:"required" example:"123456"`    // 密码
}

// LoginResponse 登录响应
type LoginResponse struct {
	Token string `json:"token" example:"eyJhbGciOiJIUzI1NiIs..."` // JWT令牌
	User  *User  `json:"user"`                                     // 用户信息
}

// RegisterRequest 注册请求
type RegisterRequest struct {
	Username string `json:"username" binding:"required" example:"admin"`     // 用户名
	Password string `json:"password" binding:"required" example:"123456"`    // 密码
	Email    string `json:"email" binding:"required,email" example:"admin@example.com"` // ��箱
}

// RegisterResponse 注册响应
type RegisterResponse struct {
	User *User `json:"user"` // 用户信息
}

// HealthResponse 健康检查响应
type HealthResponse struct {
	Status string `json:"status" example:"healthy"` // 系统状态
	Time   string `json:"time" example:"2023-01-01T12:00:00Z"` // 当前时间
}

// SendMessageRequest 发送消息请求
type SendMessageRequest struct {
	RobotID string  `json:"robot_id" binding:"required" example:"robot123"` // 机器人ID
	Message Message `json:"message" binding:"required"` // 消息内容
}

// SendMessageResponse 发送消息响应
type SendMessageResponse struct {
	MessageID string `json:"message_id" example:"1866043870117011456"` // 消息ID
}

// PaginationResponse 分页响应
type PaginationResponse struct {
	Total    int64       `json:"total"`    // 总记录数
	Current  int         `json:"current"`  // 当前页码
	PageSize int         `json:"pageSize"` // 每页大小
	List     interface{} `json:"list"`     // 数据列表
}

// ErrorResponse 错误响应
type ErrorResponse struct {
	Code    int    `json:"code" example:"400"`           // 错误码
	Message string `json:"message" example:"参数错误"`     // 错误信息
	Error   string `json:"error,omitempty" example:"invalid parameter"` // 详细错误
} 